When working in software development you’ll come across different management styles. Some are good, and others… not so much. It’s easy to find a thousand ways and advice on how to identify a bad boss. But do you know how to identify a good one?
Just as it’s recommended to know the signs that indicate when its time to find another job, it’s also advisable to recognize the traits that suggest it might be a good idea to stay. Let’s be honest, a significant part of your daily work life will be shaped by your boss’s decisions.
I’ve been fortunate to have worked in a company with a great culture and atmosphere. I admit it wasn’t perfect and had several areas for improvement. However, it was a place where going to work was a pleasure. And that’s hard to achieve. Much of this atmosphere can be attributed to our former Chief Operating Officer. But how did he do it? What made him a good boss?
This list is mainly composed of qualities he demonstrated during our time working together. They’re not necessarily the only qualities that exist, but they’re the ones I observed that contributed to creating the cohesion and camaraderie that many companies strive for.
Has knowledge about the software development industry
Good bosses, for starters, understands how the industry they are in works. They know the software development process, what it entails, how it works, and the importance of each part. They also have a general understanding of the different areas within a development team and are familiar with the basic terminology of each one.
Essentially, this means they know enough to easily grasp the concepts they need to. They can differentiate between roles like front-end, back-end, and mobile developers. They understand what a database is, what a repository is, what a domain and server are, and they’re aware of the technology stacks used in the company and projects. When a boss understands this, it’s noticeable. They consider it when estimating delivery times, assembling teams, and most importantly, when communicating with the team.
Considers the team’s input before committing deadlines and scope
Due to the nature of the work, a manager won’t have time to be an expert in UI, programming, or servers. They’re aware of this and won’t make decisions that could jeopardize the team’s work without being sure their choices make sense. The only way to ensure this is by consulting the team.
How long do you estimate it will take to complete this project with these features? How many people do you think we’ll need? In this case, would adding more people to the team help or only set us back? These are some of the questions a good boss always asks their development team.
Focuses on finding solutions rather than blaming for mistakes
Making mistakes is normal, especially during software development. Therefore, seeking solutions is the best approach in both the short and long term. Why?
Well, in the short term, it reduces the impact of the error, and sometimes it even goes unnoticed. On the other hand in the long term, the team gains confidence to address issues in the same manner, without causing negative repercussions to themselves.
Focusing on assigning blame wastes the team’s time, increases project risks, and encourages team members to hide errors for future occasions.
Celebrates victories publicly and provides feedback privately
They care about highlighting employees’ qualities and acknowledging their achievements. Consequently, they know that publicly acknowledging these achievements is better for employees, boosting their self-esteem, and letting their colleagues know they’ll be treated the same way when the time comes.
Conversely, they address areas that need improvement in private. The goal isn’t to humiliate or make others feel bad, but to equip them with tools to genuinely improve. This prevents people from feeling unnecessarily pressured for making mistakes or having weaknesses in certain areas.
Takes responsibility for the team when needed
Just as errors are common, it’s also quite common for some of them not to go unnoticed. Regardless of whether they need to answer to their own superiors or to a client, a good boss takes responsibility for the team’s performance and addresses any shortcomings.
The reasons for this are similar to the reasons for seeking solutions instead of assigning blame. However, taking responsibility requires a certain level of character and undoubtedly builds a much stronger bond of trust. Working with someone who has your back in good and bad times makes a significant difference.
Guides everyone toward a common goal
Leadership is not just about dealing with unexpected events. A good boss works with the team on a daily basis, ensuring everyone understands the objectives of their tasks.
It’s important not to fall into the extreme of leaving the team completely on their own, no matter how much trust they have. Perhaps they can give the team a bit more space and even delegate leadership to someone else on the team. However, even in that case, they should still be concerned with ensuring everyone has the necessary guidance and is progressing toward the same destination.
Respects work hours
A good boss always ensures not to overload someone with work. This means they try not to call outside of working hours or ask for overtime. However, defining this boundary is not always straightforward.
In a fixed-hour job, it’s simple. Working hours are when meetings, calls, and work take place. On the other hand, in flexible-hour jobs, it’s more complex. In these cases, what needs to be measured is the amount of work and the time it’s taking, making sure exceeding the initially agreed-upon working hours doesn’t become a habit.
Recognizes and respects the complexity of the work
This goes hand in hand with understanding the industry. If your boss understands the industry, they won’t underestimate the work you do. They know that software development is not mechanical work; it often requires research and creativity. Therefore, they refrain from commenting that something is “too easy” or “shouldn’t take that long.” Instead, when in doubt, they prefer seeking the opinions of more professionals to get a better idea.
Tries to align the work with your professional goals
As a leader, they know that the company can only grow if the people grow with it. That’s why they care about the interests of the professionals working with them and try to assign tasks and roles that appeal to them or help them specialize.
When new project opportunities or professional growth arise, they’ll always prioritize the internal team over looking for external candidates.
Strives to create a sense of community
They know that building a team where members appreciate and interact with each other not only professionally but also personally is the best way to maintain cohesion. Therefore, they make efforts to create spaces where everyone feels relaxed, can talk, and engage in activities beyond work-related matters.
Sometimes, allowing for this kind of interaction while still attending to work matters can be challenging. However, that’s not a reason not to try and make adjustments as needed along the way. Since building camaraderie depends on each individual, situations need to be adapted so that everyone has the opportunity to integrate at their own pace.
Understands that everyone has obligations and responsibilities outside of work
They know that everyone has a life outside the office, with activities and things they need to attend to. Not only do they know this, they’re also flexible about it. A good boss won’t complain if you need to go to the doctor or run errands at the bank. They’re even open to reaching some kind of agreement if you need to arrive a bit later or leave a bit earlier on certain days due to other obligations.
They won’t get upset if someone has to pick up their kids from school or attend a class. They measure results, and as long as you, as an employee, are fulfilling your agreed-upon responsibilities, they have no issue with being flexible so you can meet your other commitments.
Cares about the team on a personal level
They aim to establish not only a professional relationship but also a friendly one with their employees. However, they also know how to respect everyone’s individual boundaries.
This is important because it’s harder to build a united team if that attitude doesn’t come from the person leading it. And the best way to achieve it is by practicing it. Seeing that fellow colleagues have an open and trusting relationship with their bosses encourages new members to also form that kind of relationship.
So, now you know, if you’re fortunate enough to have a boss with any of these qualities, give them a chance. Maybe the place you’re working at is better than you initially thought.